home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / ANDTOK / OEMSETUP.INF < prev   
INI File  |  1996-07-31  |  41KB  |  1,282 lines

  1. ***********************************************************************
  2. ;
  3. ;  ANDTOK.INF
  4. ;
  5. ;    ANDREW ISA IIA network card and driver SETUP INF file.
  6. ;
  7. ;
  8. ;  Copyright (c) 1993  DWB Associates Inc.  All Rights Reserved
  9. ;
  10. ;***********************************************************************
  11.  
  12.  
  13. [Identification]
  14.     OptionType = NetAdapter
  15.  
  16. [PlatformsSupported]
  17.     ISA
  18.     EISA
  19.  
  20. [LanguagesSupported]
  21.     ENG
  22.  
  23. [Options]
  24.     ANDTOK
  25.  
  26. [OptionsTextENG]
  27.     ANDTOK     = "Andrew ISA IIA Token Ring Adapter"
  28.  
  29. [Source Media Descriptions]
  30.     1   = "ANDTOK Install Diskette"
  31.     2   = "Windows NT Setup CD-ROM Disk"
  32.  
  33. [Signature]
  34.     FileType = MICROSOFT_DRVLIB_FILE
  35. [GetSignature]
  36.     read-syms Signature
  37.     return $(FileType)
  38.  
  39. [Files-ANDTOK]
  40.     1,andtok.sys, SIZE=40000
  41.     1,eaglemac.bin, SIZE=40000
  42.  
  43. [Files-Dlg]
  44.     1,andtok.dll, SIZE=40000
  45.     1,andtok.hlp, SIZE=40000
  46.  
  47. [Files-Inf]
  48.     1, oemsetup.inf, SIZE=20000, RENAME=$(!UG_Filename)
  49.  
  50. [Files-andncdet]
  51.     1,andncdet.dll, SIZE=40000
  52.  
  53. [date]
  54.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  55.  
  56. [FileConstants]
  57.     UtilityInf      = "UTILITY.INF"
  58.     ParamInf        = "NCPARAM.INF"
  59.     SubroutnInf     = "SUBROUTN.INF"
  60.     NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  61.  
  62.  
  63. [RegistryConstants]
  64.     SoftwareType                     = "driver"
  65.     Manufacturer                     = "ANDREW"
  66.     ProductMajorVersion              = "3"
  67.     ProductMinorVersion              = "1"
  68.     ProductVersion                   = $(ProductMajorVersion)"."$(ProductMinorVersion)
  69.     ProductSoftwareName              = "AndTok"
  70.     ProductSoftwareTitle             = "AndTok Adapter Driver"
  71.     ProductSoftwareImagePath         = "\SystemRoot\System32\drivers\andtok.sys"
  72.     NetRuleSoftwareType              = "andtokSys ndisDriver andtokDriver"
  73.     NetRuleSoftwareUse               = $(SoftwareType)
  74.     NetRuleSoftwareBindForm          = """AndTokSys"" yes no container"
  75.     NetRuleSoftwareClass             = {"andtokDriver basic"}
  76.     NetRuleSoftwareBindable          = {"andtokDriver andtokAdapter non exclusive 100"}
  77.     ProductHardwareName              = "AndTok"
  78.     ProductHardwareANDTOKTitle       = "Andrew ISA IIA Adapter"
  79.     NetRuleHardwareType              = "andtok andtokAdapter"
  80.     NetRuleHardwareBindForm          = " yes yes container"
  81.     NetRuleHardwareClass             = {"andtokAdapter basic"}
  82.     ProductKeyName                   = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  83.     ParamKeyName                     = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  84.     ProductSoftwareDescription       = "Andrew ISA IIA Adapter Driver"
  85.     ProductHardwareANDTOKDescription = "Andrew ISA IIA Adapter"
  86.  
  87. [GeneralConstants]
  88.     KeyNull            = ""
  89.     MAXIMUM_ALLOWED    = 33554432
  90.     KeyProduct         = ""
  91.     KeyParameters      = ""
  92.     TRUE               = 1
  93.     FALSE              = 0
  94.     NoTitle            = 0
  95.     DriverPath         = $(!STF_NTPATH)\drivers
  96.  
  97. [FileConstantsENG]
  98.     ProCaption    = "Windows NT Setup"
  99.     ProCancel     = "Cancel"
  100.     ProCancelMsg  = "Windows NT Networking is not correctly installed.  "+
  101.                     "Are you sure you want to cancel copying files?"
  102.     ProCancelCap  = "Network Setup Message"
  103.     ProText1      = "Copying:"
  104.     ProText2      = "To:"
  105.     Cancel        = "Cancel"
  106.     FunctionTitle = "Andrew ISA IIA Token Ring Adapter Card Setup"
  107.  
  108. [DownLoadInfo]
  109.     DownFile = "eaglemac.bin"
  110.  
  111. [AndIrqs]
  112.     IRQ0 = "3",3
  113.     IRQ1 = "5",5
  114.     IRQ2 = "6",6
  115.     IRQ3 = "7",7
  116.     IRQ4 = "9",9
  117.     IRQ5 = "10",10
  118.     IRQ6 = "11",11
  119.     IRQ7 = "12",12
  120.  
  121. [AndDmaChan]
  122.     DMA0 = "7",7
  123.     DMA1 = "6",6
  124.     DMA2 = "5",5
  125.     DMA3 = "1",1
  126.  
  127. [AndIoBase]
  128.     Base0 = "0x1A20",0x1A20
  129.     Base1 = "0x2A20",0x2A20
  130.     Base2 = "0x3A20",0x3A20
  131.     Base3 = "0x3A40",0x3A40
  132.     Base4 = "0x3A60",0x3A60
  133.     Base5 = "0x3A80",0x3A80
  134.     Base6 = "0x3AA0",0x3AA0
  135.     Base7 = "0x4AE0",0x4AE0
  136.  
  137. [AndPioBase]
  138.     Pio0 = "0x380",0x380
  139.     Pio1 = "0x382",0x382
  140.     Pio2 = "0x384",0x384
  141.     Pio3 = "0x386",0x386
  142.     Pio4 = "0x390",0x390
  143.     Pio5 = "0x392",0x392
  144.     Pio6 = "0x394",0x394
  145.     Pio7 = "0x396",0x396
  146.  
  147. [AndIdBase]
  148.     Base0x380 = "0"
  149.     Base0x382 = "1"
  150.     Base0x384 = "2"
  151.     Base0x386 = "3"
  152.     Base0x390 = "4"
  153.     Base0x392 = "5"
  154.     Base0x394 = "6"
  155.     Base0x396 = "7"
  156.  
  157. [HexDigits]
  158.     Hex0 = 0
  159.     Hex1 = 1
  160.     Hex2 = 2
  161.     Hex3 = 3
  162.     Hex4 = 4
  163.     Hex5 = 5
  164.     Hex6 = 6
  165.     Hex7 = 7
  166.     Hex8 = 8
  167.     Hex9 = 9
  168.     HexA = A
  169.     HexB = B
  170.     HexC = C
  171.     HexD = D
  172.     HexE = E
  173.     HexF = F
  174.  
  175. [DialogConstantsENG]
  176.     Help         = "&Help"
  177.     Exit         = "Cancel"
  178.     OK           = "OK"
  179.     Continue     = "Continue"
  180.     Cancel       = "Cancel"
  181.     BadMaxFrame1 = "Maximum Frame Size must be at least 256"
  182.     BadMaxFrame2 = "Maximum Frame Size must be no greater that 4472 for 4mbs"
  183.     BadMaxFrame3 = "Maximum Frame Size must be no greater that 17800 for 16mbs"
  184.     BadProdId1   = "Product Id must be 36 hexadecimal digits"
  185.     BadProdId2   = "Product Id contains invalid hexadecimal digit: "
  186.     BadAddr1     = "Network Address must be 12 hexadecimal digits"
  187.     BadAddr2     = "Network Address contains invalid hexadecimal digit: "
  188.     BadAddr3     = "Network Address invalid, must be between 4000 0000 0000 and 7fff ffff ffff"
  189.     CardError1   = "AndTok card not installed in system"
  190.     CardError2   = "AndTok card(s) are already installed"
  191.  
  192. [FileDependentDlgISA]
  193.     DlgTemplate = "ANDISA"
  194.     HelpContext = "30000"
  195.  
  196. [FileDependentDlgENG]
  197.     DlgType            = "RadioCombination"
  198.     Caption            = "Andrew ISA IIA Token Ring Adapter Card Setup"
  199.     Label1             = "&IRQ Level"
  200.     Label2             = "I/O &Base"
  201.     Label3             = "&DMA Channel"
  202.     Label4             = "&Adapter ID"
  203.     Label5             = "&Maximum Frame Size"
  204.     Label7             = "Add&ress"
  205.     Group1             = "Ring &Speed"
  206.     Group2             = "&Transfer Mode"
  207.     Group3             = "N&ode Address"
  208.     Group4             = "Advanced Options"
  209.     Group5             = "Cloc&k Source"
  210.     Radio1             = "16 MBS"
  211.     Radio2             = "4 MBS"
  212.     Radio3             = "Busmaster DMA"
  213.     Radio4             = "Programmed I/O"
  214.     Radio5             = "System"
  215.     Radio6             = "8 MHz"
  216.     Radio7             = "16 MHz"
  217.     Check1             = "&Early Token Release"
  218.     Check2             = "&Locally Administered"
  219.     Check3             = "No &Wait States"
  220.     Check4             = "Long B&urst"
  221.     IrqList            = ^(AndIrqs, 1)
  222.     IoBaseList         = ^(AndIoBase, 1)
  223.     PioBaseList        = ^(AndIdBase, 1)
  224.     DmaList            = ^(AndDmaChan, 1)
  225.     SpeedValue         = 0
  226.     DmaModeValue       = "dma"
  227.     WaitStates         = 0
  228.     LongBurst          = 0
  229.     ClockSource        = 0
  230.     Combo1List         = $(IrqList)
  231.     Combo1Out          = $(InterruptNumber)
  232.     Combo2List         = $(IoBaseList)
  233.     Combo2Out          = $(IoBaseAddress)
  234.     Combo3List         = $(DmaList)
  235.     Combo3Out          = $(DmaChan)
  236.     Combo4List         = $(PioBaseList)
  237.     Combo4Out          = $(PioValue)
  238.     ComboListItemsIn4  = {Combo1List, Combo2List, Combo3List, Combo4List}
  239.     ComboListItemsOut4 = {Combo1Out, Combo2Out, Combo3Out, Combo4Out}
  240.     CBOptionsGreyed    = {}
  241.     NotifyFields       = {NO, NO, NO}
  242.     EditTextLim        = {5, 12}
  243.     EditFocusOn        = ""
  244.     RCCtlFocusOn       = 403
  245.  
  246. [Identify]
  247.     read-syms Identification
  248.     set Status     = STATUS_SUCCESSFUL
  249.     set Identifier = $(OptionType)
  250.     set Media      = #("Source Media Descriptions", 1, 1)
  251.     Return $(Status) $(Identifier) $(Media)
  252.  
  253. [ReturnOptions]
  254. set !DebugOutputControl = 1
  255.     set OptionList     = ^(Options, 1)
  256.     set OptionTextList = ^(OptionsText$($0), 1)
  257.     set Status         = STATUS_SUCCESSFUL
  258.  
  259.     set LanguageList = ^(LanguagesSupported, 1)
  260.     Ifcontains(i) $($0) in $(LanguageList)
  261.       ifstr(i) $($0) == ""
  262.         set Status = STATUS_NOLANGUAGE
  263.         goto ExitReturnOptions
  264.       endif
  265.     else
  266.       set Status = STATUS_NOLANGUAGE
  267.       goto ExitReturnOptions
  268.     endif
  269.  
  270.     set PlatformList = ^(PlatformsSupported, 1)
  271.     Ifcontains(i) $($1) in $(PlatformList)
  272.       ifstr(i) $($1) == ""
  273.         set Status = STATUS_NOTSUPPORTED
  274.       endif
  275.     else
  276.       set Status = STATUS_NOTSUPPORTED
  277.     endif
  278.  
  279. ExitReturnOptions = +
  280.     Return $(Status) $(OptionList) $(OptionTextList)
  281.  
  282. [InstallOption]
  283.     StartWait
  284. set !DebugOutputControl = 1
  285.  
  286.     set Option   = $($1)
  287.     set SrcDir   = $($2)
  288.     set AddCopy  = $($3)
  289.     set DoCopy   = $($4)
  290.     set DoConfig = $($5)
  291.  
  292.     set LanguageList = ^(LanguagesSupported, 1)
  293.  
  294.     read-syms GeneralConstants
  295.     read-syms FileConstants
  296.     read-syms RegistryConstants
  297.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  298.     read-syms DialogConstants$(!STF_LANGUAGE)
  299.     read-syms FileConstants$(!STF_LANGUAGE)
  300.     read-syms FileDependentDlgISA
  301.  
  302.     set NoArg = $(TRUE)
  303.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  304.         set SubFunction = RemoveAdapter
  305.     else-Ifstr(i) $(!NTN_InstallMode) == update
  306.         set SubFunction = UpgradeSoftware
  307.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  308.         set NoArg = $(FALSE)
  309.         set SubFunction = ConfigureAdapter
  310.     else-Ifstr(i) $(!NTN_InstallMode) == install
  311.         set NoArg = $(FALSE)
  312.         set SubFunction = InstallAdapter
  313.     else
  314.         set SubFunction = NoWay
  315.     endif
  316.  
  317.     ifint $(NoArg) == $(TRUE)
  318.         Shell "" $(SubFunction)
  319.     else
  320.         Shell "" $(SubFunction) $(Option) $(DoCopy) $(AddCopy) $(SrcDir)
  321.     endif
  322.  
  323.     EndWait
  324.     return $($R0)
  325.  
  326. [InstallAdapter]
  327.     read-syms GeneralConstants
  328.     read-syms FileConstants
  329.     read-syms RegistryConstants
  330.     read-syms DialogConstants$(!STF_LANGUAGE)
  331.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  332.  
  333.     set Option  = $($0)
  334.     set DoCopy  = $($1)
  335.     set AddCopy = $($2)
  336.     set SrcDir  = $($3)
  337.  
  338.     detect date
  339.     set CurrentTime = *($(Now),1)
  340.  
  341.     set KeyProduct = $(KeyNull)
  342.     set DoSetup    = $(TRUE)
  343.  
  344.     set DetectedCard = $(FALSE)
  345.     ifstr(i) $(!STF_NCDETECT) == YES
  346.         ifstr(i) $(!STR_NCOPTION) == $(Option)
  347.             set DetectedCard = $(TRUE)
  348.         endif
  349.     endif
  350.     
  351.     ifint $(DetectedCard) == $(TRUE)
  352.         Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  353.                         {IOADDR, IOBaseAddressDecList, IOBaseValue},+
  354.                         {DMACHANNEL, DMAChannelList, DMAChannel}}
  355.     
  356.         Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  357.         Set Status = $($R0)
  358.         ifstr(i) $(Status) != STATUS_SUCCESSFUL
  359.             Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  360.             Shell "" FatalError $($R0)
  361.             Return STATUS_FAILED
  362.         Endif
  363.  
  364.         Shell $(ParamInf) Param_SetDefaults {}
  365.     endif
  366.  
  367.     set OldVersionExisted = $(FALSE)
  368.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  369.  
  370.     Ifstr $(KeyProduct) != $(KeyNull)
  371.         CloseRegKey $(KeyProduct)
  372.  
  373.         ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
  374.             Shell $(UtilityInf) VerExistedDlg $(ProductSoftwareTitle) $(ProductVersion)
  375.             ifstr(i) $($R1) != "OK"
  376.                 Return STATUS_FAILED
  377.             endif
  378.         else
  379.             Shell $(UtilityInf) CardExistedDlg
  380.             ifstr(i) $($R1) != "OK"
  381.                 Return STATUS_FAILED
  382.             endif
  383.             set OldVersionExisted = $(TRUE)
  384.         endif
  385.     endif
  386.  
  387.     ifint $(DetectedCard) == $(TRUE)
  388.         shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  389.         ifstr(i) $($R0) == STATUS_SUCCESSFUL
  390.             set DetectedParams = $($R1)
  391.             shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  392.         endif
  393.     endif
  394.  
  395.     ifint $(DoSetup) == $(TRUE)
  396.         set TempList           = ^(AndIrqs, 1)
  397.         set InterruptNumber    = *($(TempList), 1)
  398.         set TempList           = ^(AndDmaChan, 1)
  399.         set DmaChanValue       = *($(TempList), 1)
  400.         set TempList           = ^(AndIoBase, 1)
  401.         set IoBaseAddrValue    = *($(TempList), 1)
  402.         set TempList           = ^(AndPioBase, 1)
  403.         set PioBaseAddrValue   = *($(TempList), 1)
  404.         set MaxFrame           = 4096
  405.         set EarlyRelease       = 0
  406.         set SoftAddress        = 0
  407.         set NetAddress         = "000000000000"
  408.         set BusNumber          = 0
  409.  
  410.         ifint $(DetectedCard) == $(TRUE)
  411.             set InterruptNumber          = $(IRQLevel)
  412.             set-dectohex IoBaseAddrValue = $(IOBaseValue)
  413.             set DmaChanValue             = $(DMAChannel)
  414.             set BusNumber                = *($(!STF_NCDETINFO), 6)
  415.         endif
  416.  
  417.         set DLLPATH = ""
  418.         ifstr(i) $(DoCopy) == "YES"
  419.             OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  420.  
  421.             Ifstr $(KeyProduct) != $(KeyNull)
  422.                 CloseRegKey $(KeyProduct)
  423.                 set DLLPATH = $(!STF_CWDDIR)
  424.             else
  425.                 set BuiltIn = "YES"
  426.                 ifstr(i) $(!NTN_Origination) == "NCPA"
  427.                     Set BuiltIn = "NO"
  428.                 endif
  429.                 Shell $(UtilityInf) DoAskSource $(!STF_CWDDIR) $(SrcDir) $(BuiltIn)
  430.                 set DLLPATH = $($R1)
  431.                 set SrcDir  = $($R1)
  432.             endif
  433.         endif
  434.  
  435. dowind =+
  436.         set TempList       = ^(AndPioBase, 1)
  437.         set PioValue       = *($(TempList), 1)
  438.         set SpeedValue     = 16
  439.         set SetAddress     = 0
  440.         set WaitStates     = 1
  441.         set LongBurst      = 1
  442.         set ClockSource    = 0
  443.  
  444.         Shell "" AdapterSetup
  445.         ifint $($R0) != $(TRUE)
  446.             Return STATUS_USERCANCEL
  447.         endif
  448.  
  449.         set IRQLevel    = $(NewIrq)
  450.         set IOBaseValue = $(NewBase)
  451.         set DMAChannel  = $(NewDma)
  452.  
  453.         Shell $(ParamInf) Param_SaveValues
  454.         Set NewParamSettings = $($R0)
  455.  
  456.         Shell $(ParamInf) Param_VerifyResources $(NewParamSettings)
  457.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  458.             Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  459.             Shell "" VerifyError $($R0)
  460.                 ifstr(i) $($R0) != "OK"
  461.                     goto dowind
  462.                 endif
  463.             endif
  464.         endif
  465.  
  466.         ifint $(OldVersionExisted) == $(FALSE)
  467.             Shell "" SetCopy $(DoCopy) $(AddCopy) $(SrcDir)
  468.             ifint $($R0) == $(TRUE)
  469.                 Shell "" SetSoftware $(CurrentTime)
  470.                 ifint $($R0) != $(TRUE)
  471.                     Return STATUS_FAILED
  472.                 endif
  473.             endif
  474.         endif
  475.  
  476.         Shell "" SetHardware $(CurrentTime)
  477.  
  478.         ifint $($R0) == $(TRUE)
  479.             Shell "" WriteParameters
  480.         endif
  481.     endif
  482.  
  483.     ifint $($R0) == $(TRUE)
  484.         Return STATUS_SUCCESSFUL
  485.     else
  486.         Return STATUS_FAILED
  487.     endif
  488.  
  489. [ConfigureAdapter]
  490.     read-syms GeneralConstants
  491.     read-syms FileConstants
  492.     read-syms RegistryConstants
  493.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  494.     read-syms FileDependentDlgISA
  495.     set Option = $($0)
  496.  
  497.     ifstr(i) $(!NTN_RegBase) == $(ProductKeyName)
  498.         Shell $(UtilityInf) RegistryErrorString CANNOT_CONFIGURE_SOFTWARE
  499.         Shell "" FatalError $($R0)
  500.         Return STATUS_FAILED
  501.     endif
  502.  
  503.     Set DetectedCard = $(FALSE)
  504.     ifstr(i) $(!STF_NCDETECT) == YES
  505.         ifstr(i) $(!STF_NCOPTION) == $(Option)
  506.             set DetectedCard = $(TRUE)
  507.         endif
  508.     endif
  509.  
  510.     ifint $(DetectedCard) == $(TRUE)
  511.         Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  512.                         {IOADDR, IOBaseAddressDecList, IOBaseValue},+
  513.                         {DMACHANNEL, DMAChannelList, DMAChannel}}
  514.         Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  515.         Set Status = $($R0)
  516.         ifstr(i) $(Status) != STATUS_SUCCESSFUL
  517.             Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  518.             Shell "" FatalError $($R0)
  519.             Return STATUS_FAILED
  520.         Endif
  521.     
  522.         Shell $(ParamInf) Param_SetDefaults {}
  523.     Endif
  524.  
  525.     OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  526.  
  527.     Ifstr $(KeyProduct) == $(KeyNull)
  528.         Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE
  529.         Shell "" FatalError $($R0)
  530.         Return STATUS_FAILED
  531.     endif
  532.  
  533.     Shell $(UtilityInf) FindService, $(KeyProduct)
  534.  
  535.     Ifstr(i) $($R0) != NO_ERROR
  536.         Shell $(UtilityInf) RegistryErrorString $($R0)
  537.         Shell "" FatalError $($R0)
  538.         Return STATUS_FAILED
  539.     endif
  540.  
  541.     Set !KeyParameters = $($R2)
  542.     CloseRegKey $($R1)
  543.  
  544.     Ifstr $(!KeyParameters) == $(KeyNull)
  545.         Shell $(UtilityInf) RegistryErrorString CANNOT_FIND_COMPONENT_SERVICE
  546.         Shell "" FatalError $($R0)
  547.         Return STATUS_FAILED
  548.     endif
  549.  
  550.     set ValueName = ""
  551.     set ValueData = ""
  552.     set ValueStr  = ""
  553.     set ValueList = {}
  554.  
  555.     EnumRegValue $(!KeyParameters) ValueList
  556.  
  557.     ForListDo $(ValueList)
  558.         set ValueItem = $($)
  559.         set ValueName = *($(ValueItem),1)
  560.         set ValueData = *($(ValueItem),4)
  561.         Ifstr(i) $(ValueName) == "Speed"
  562.             set SpeedValue = $(ValueData)
  563.         else-ifstr(i) $(ValueName) == "DmaMode"
  564.             set DmaModeValue = $(ValueData)
  565.         else-ifstr(i) $(ValueName) == "BusNumber"
  566.             set BusNumber = $(ValueData)
  567.         else-ifstr(i) $(ValueName) == "Interrupt"
  568.             set InterruptNumber = $(ValueData)
  569.         else-ifstr(i) $(ValueName) == "IoBase"
  570.             set IoBaseAddrValue = $(ValueData)
  571.         else-ifstr(i) $(ValueName) == "DmaChannel"
  572.             set DmaChanValue = $(ValueData)
  573.         else-ifstr(i) $(ValueName) == "PacketSize"
  574.             set MaxFrame = $(ValueData)
  575.         else-ifstr(i) $(ValueName) == "PioBase"
  576.             set PioValue = $(ValueData)
  577.         else-ifstr(i) $(ValueName) == "EarlyRelease"
  578.             set EarlyRelease = $(ValueData)
  579.         else-ifstr(i) $(ValueName) == "SetAddress"
  580.             set SetAddress = $(ValueData)
  581.         else-ifstr(i) $(ValueName) == "NetworkAddress"
  582.             set NetworkAddress = $(ValueData)
  583.         else-ifstr(i) $(ValueName) == "WaitStates"
  584.             set WaitStates = $(ValueData)
  585.         else-ifstr(i) $(ValueName) == "LongBurst"
  586.             set LongBurst = $(ValueData)
  587.         else-ifstr(i) $(ValueName) == "ClockSource"
  588.             set ClockSource = $(ValueData)
  589.         endif
  590.     EndForListDo
  591.  
  592.     set-dectohex IoBaseAddrValue = $(IoBaseAddrValue)
  593.     set-dectohex PioValue        = $(PioValue)
  594.  
  595. winagn =+
  596.     set DLLPATH = $(!STF_CWDDIR)
  597.     Shell "" AdapterSetup
  598.  
  599.     ifint $($R0) != $(TRUE)
  600.         Return STATUS_USERCANCEL
  601.     endif
  602.  
  603.     set IRQLevel    = $(NewIrq)
  604.     set IOBaseValue = $(NewBase)
  605.     set DMAChannel  = $(NewDma)
  606.  
  607.     ifstr(i) $(!STF_BUSTYPE) == ISA
  608.         Shell $(ParamInf) Param_SaveValues
  609.         Set NewParamSettings = $($R0)
  610.         Shell $(ParamInf) Param_VerifyResources $(NewParamSettings)
  611.         Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  612.             Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  613.             Shell "" VerifyError $($R0)
  614.             ifstr(i) $($R0) != "OK"
  615.                 goto winagn
  616.             endif
  617.         endif
  618.     endif
  619.  
  620.     Shell "" WriteParameters
  621.  
  622.     ifint $($R0) == $(TRUE)
  623.         Return STATUS_SUCCESSFUL
  624.     else
  625.         Return STATUS_FAILED
  626.     endif
  627.  
  628. [NoWay]
  629.     read-syms GeneralConstants
  630.     Shell "" FatalError "NoWay"
  631.     Return STATUS_FAILED
  632.  
  633. [RemoveAdapter]
  634.     read-syms RegistryConstants
  635.     read-syms GeneralConstants
  636.     read-syms FileConstants
  637.  
  638.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  639.             $(ProductSoftwareName), $(!NTN_RegBase)
  640.  
  641.         ifstr(i) $($R0) != NO_ERROR
  642.             Shell $(UtilityInf) RegistryErrorString $($R0)
  643.             Shell "" FatalError $($R0)
  644.             Return STATUS_FAILURE
  645.         endif
  646.  
  647.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  648.             $(ProductSoftwareName)
  649.  
  650.         ifstr(i) $($R0) == REF_COUNT_NOT_ZERO
  651.             Return STATUS_SUCCESSFUL
  652.         endif
  653.  
  654.         ifstr(i) $($R0) != NO_ERROR
  655.             Shell $(UtilityInf) RegistryErrorString $($R0)
  656.             Shell "" FatalError $($R0)
  657.             Return STATUS_FAILURE
  658.         endif
  659.  
  660.     Return STATUS_SUCCESSFUL
  661.  
  662.  
  663. [UpgradeSoftware]
  664.     read-syms GeneralConstants
  665.     read-syms RegistryConstants
  666.  
  667.  
  668.     ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  669.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  670.         Ifstr $(KeyProduct) == $(KeyNull)
  671.             Return STATUS_FAILED
  672.         endif
  673.  
  674.         GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  675.         set Version = *($(VersionInfo), 4)
  676.         Split-String $(!NTN_Infname), "\", FilenameList
  677.         QueryListSize ListSize $(FilenameList)
  678.         set !UG_Filename = *($(FilenameList), $(ListSize))
  679.  
  680.         install "Install-Update"
  681.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  682.             Return STATUS_FAILED
  683.         endif
  684.  
  685.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  686.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  687.         CloseRegKey $(KeyProduct)
  688.     else
  689.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) NetworkCardKey
  690.         Ifstr(i) $(NetworkCardKey) == $(KeyNull)
  691.             Return STATUS_FAILED
  692.         endif
  693.  
  694.         GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  695.         set ServiceName = *($(ServiceNameInfo), 4)
  696.  
  697.         OpenRegKey $(NetworkCardKey) "" "NetRules" $(MAXIMUM_ALLOWED) NetRuleKey
  698.         Ifstr(i) $(NetRuleKey) == $(KeyNull)
  699.             Return STATUS_FAILED
  700.         endif
  701.  
  702.         CloseRegKey $(NetRules)
  703.         CloseRegKey $(NetworkCardKey)
  704.  
  705.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName) $(MAXIMUM_ALLOWED) ServiceKey
  706.         Ifstr(i) $(ServiceKey) == $(KeyNull)
  707.             Return STATUS_FAILED
  708.         endif
  709.  
  710.         CloseRegKey $(ServiceKey)
  711.     endif
  712.  
  713.     Return STATUS_SUCCESSFUL
  714.  
  715. [AdapterSetup]
  716.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  717.     read-syms DialogConstants$(!STF_LANGUAGE)
  718.     read-syms FileConstants$(!STF_LANGUAGE)
  719.     read-syms FileConstants
  720.     read-syms GeneralConstants
  721.     read-syms FileDependentDlgISA
  722.  
  723.     set DLLPATH        = $(!p:DLLPATH)
  724.     set Combo1Out      = $(!p:InterruptNumber)
  725.     set Combo2Out      = $(!p:IoBaseAddrValue)
  726.     set SpeedValue     = $(!p:SpeedValue)
  727.     set Combo3Out      = $(!p:DmaChanValue)
  728.     set Combo4Out      = $(!p:PioValue)
  729.     set DmaModeValue   = $(!p:DmaModeValue)
  730.     set MaxFrame       = $(!p:MaxFrame)
  731.     set EarlyRelease   = $(!p:EarlyRelease)
  732.     set SetAddress     = $(!p:SetAddress)
  733.     set WaitStates     = $(!p:WaitStates)
  734.     set LongBurst      = $(!p:LongBurst)
  735.     set BusNumber      = $(!p:BusBumber)
  736.     set ClockSource    = $(!p:ClockSource)
  737.  
  738.     set Combo4Out = #(AndIdBase, "Base"$(Combo4Out), 1)
  739.  
  740.     set ComboListItemsIn  = $(ComboListItemsIn4)
  741.     set ComboListItemsOut = $(ComboListItemsOut4)
  742.  
  743.     ifint $(SetAddress) == 1
  744.         set NetworkAddress = $(!p:NetworkAddress)
  745.     else
  746.         set NetworkAddress = "000000000000"
  747.     endif
  748.  
  749.  
  750.     SetHelpFile $(DLLPATH)\"andtok.hlp" 30000 30001
  751.  
  752.     set AdapterStatus = $(FALSE)
  753.  
  754.     ifint $(SpeedValue) == 16
  755.         set FirstButton = 1
  756.     else
  757.         set FirstButton = 2
  758.     endif
  759.  
  760.     ifstr(i) $(DmaModeValue) == "dma"
  761.         set SecondButton = 3
  762.     else
  763.         set SecondButton = 4
  764.     endif
  765.  
  766.     ifint $(ClockSource) == 0
  767.         set ThirdButton = 5
  768.     else-ifint $(ClockSource) == 1
  769.         set ThirdButton = 6
  770.     else
  771.         set ThirdButton = 7
  772.     endif
  773.     set RadioIn = {$(FirstButton), $(SecondButton), $(ThirdButton)}
  774.  
  775.     ifint $(EarlyRelease) == 0
  776.         set ReleaseState = "ON"
  777.     else
  778.         set ReleaseState = "OFF"
  779.     endif
  780.  
  781.     ifint $(SetAddress) == 0
  782.         set AddressState = "OFF"
  783.     else
  784.         set AddressState = "ON"
  785.     endif
  786.  
  787.     ifint $(WaitStates) == 0
  788.         set WaitState = "OFF"
  789.     else
  790.         set WaitState = "ON"
  791.     endif
  792.  
  793.     ifint $(LongBurst) == 0
  794.         set BurstState = "OFF"
  795.     else
  796.         set BurstState = "ON"
  797.     endif
  798.  
  799.     set CheckItemsIn = {$(ReleaseState), $(AddressState), $(WaitState), $(BurstState)}
  800.  
  801.     set EditTextIn = {$(MaxFrame), $(NetworkAddress)}
  802.  
  803.     loadlibrary "AndTok Install Diskette" $(DLLPATH)\andtok.dll DllHandle
  804.  
  805. RetryDialog =+
  806.     EndWait
  807.     ui start "InputDlg" $(DllHandle)
  808.     StartWait
  809.  
  810.     set NewMaxFrame  = *($(EditTextOut), 1)
  811.     set NewNetworkAddress = *($(EditTextOut), 2)
  812.  
  813.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  814.         IfContains "1" IN $(RadioOut)
  815.             set RingSpeed = 16
  816.         else-IfContains "2" IN $(RadioOut)
  817.             set RingSpeed = 4
  818.         endif
  819.         IfContains "3" IN $(RadioOut)
  820.             set DmaModeType = "dma"
  821.         else-IfContains "4" IN $(RadioOut)
  822.             set DmaModeType = "dio"
  823.         endif
  824.         IfContains "5" IN $(RadioOut)
  825.             set ClockType = 0
  826.         else-IfContains "6" IN $(RadioOut)
  827.             set ClockType = 1
  828.         else-IfContains "7" IN $(RadioOut)
  829.             set ClockType = 2
  830.         endif
  831.  
  832.         IfContains "ON" IN *($(CheckItemsOut),1)
  833.             set EarlyRelease = 0
  834.         else
  835.             set EarlyRelease = 1
  836.         endif
  837.  
  838.         IfContains "ON" IN *($(CheckItemsOut),2)
  839.             set SetAddress = 1
  840.         else
  841.             set SetAddress = 0
  842.         endif
  843.  
  844.         IfContains "ON" IN *($(CheckItemsOut),3)
  845.             set WaitStates = 1
  846.         else
  847.             set WaitStates = 0
  848.         endif
  849.  
  850.         IfContains "ON" IN *($(CheckItemsOut),4)
  851.             set LongBurst = 1
  852.         else
  853.             set LongBurst = 0
  854.         endif
  855.  
  856.         set-hextodec Base = $(Combo2Out)
  857.  
  858.         ifint $(NewMaxFrame) < 256
  859.             Shell "" WarnError $(BadMaxFrame1)
  860.             goto RetryDialog
  861.         else-ifint $(NewMaxFrame) > 4472
  862.             ifint $(RingSpeed) == 4
  863.                 Shell "" WarnError $(BadMaxFrame2)
  864.                 goto RetryDialog
  865.             else-ifint $(NewMaxFrame) > 17800
  866.                 Shell "" WarnError $(BadMaxFrame3)
  867.                 goto RetryDialog
  868.             endif
  869.         endif
  870.  
  871.         set AdapterStatus = $(TRUE)
  872.  
  873.         ifint $(SetAddress) == 1
  874.             Split-String $(NewNetworkAddress), "0123456789ABCDEFabcdef", TempList
  875.             set HexList = ^(HexDigits, 1)
  876.             QueryListSize ListSize $(TempList)
  877.             ifint $(ListSize) == 12
  878.                 set Index1 = 1
  879.                 set Loop   = 1
  880.             else
  881.                 Shell "" WarnError $(BadAddr1)
  882.                 goto RetryDialog
  883.             endif
  884.  
  885. NetAddrLoop =+
  886.             set Temp1 = *($(TempList), $(Index1))
  887.             ifcontains(i) $(Temp1) not-in $(HexList)
  888.                 Shell "" WarnError $(BadAddr2)$(Temp1)
  889.                 goto RetryDialog
  890.             endif
  891.             ifint $(Index1) == 1
  892.                 ifint $(Temp1) < 4
  893.                     Shell "" WarnError $(BadAddr3)
  894.                     goto RetryDialog
  895.                 endif
  896.                 ifint $(Temp1) > 7
  897.                     Shell "" WarnError $(BadAddr3)
  898.                     goto RetryDialog
  899.                 endif
  900.             endif
  901.     
  902.             set-add Index1 = $(Index1), 1
  903.             set-add Loop  = $(Loop), 1
  904.             ifint $(Loop) < 13
  905.                 goto NetAddrLoop
  906.             endif
  907.         else
  908.             set NewNetworkAddress = "000000000000"
  909.         endif
  910.     endif
  911.  
  912.     ui pop 1
  913.     FreeLibrary $(DllHandle)
  914.  
  915.     set !p:NewBase              = $(Base)
  916.     set !p:NewIrq               = $(Combo1Out)
  917.     set !p:NewSpeed             = $(RingSpeed)
  918.     set !p:NewDma               = $(Combo3Out)
  919.     set !p:NewDmaMode           = $(DmaModeType)
  920.     set !p:NewPio               = #(AndPioBase, "Pio"$(Combo4Out), 1)
  921.     set-hextodec !p:NewPio      = $(!p:NewPio)
  922.     set !p:NewMaxFrame          = $(NewMaxFrame)
  923.     set !p:NewEarlyRelease      = $(EarlyRelease)
  924.     set !p:SetAddress           = $(SetAddress)
  925.     set !p:NetworkAddress       = $(NewNetworkAddress)
  926.     set !p:NewClockSource       = $(ClockType)
  927.     set !p:NewWaitStates        = $(WaitStates)
  928.     set !p:NewLongBurst         = $(LongBurst)
  929.     set !p:BusNumber            = $(BusNumber)
  930.             
  931.     return $(AdapterStatus)
  932.  
  933.  
  934. [SetCopy]
  935.     read-syms GeneralConstants
  936.     read-syms FileConstants
  937.  
  938.     set DoCopy = $($0)
  939.     set AddCopy = $($1)
  940.     set SrcDir  = $($2)
  941.     set Needcopy = $(FALSE)
  942.  
  943.     Ifstr(i) $(DoCopy) == "YES"
  944.         set NeedCopy = $(TRUE)
  945.     else-ifstr(i) $(AddCopy) == "YES"
  946.         set NeedCopy = $(TRUE)
  947.     else
  948.         Return $(TRUE)
  949.     endif
  950.  
  951.     set BuiltIn = "YES"
  952.     ifstr(i) $(!NTN_Origination) == "NCPA"
  953.         Set BuiltIn = "NO"
  954.     endif
  955.  
  956.     Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) $(BuiltIn)
  957.  
  958.     Ifstr(i) $($R0) == STATUS_FAILED
  959.         Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  960.         Shell "" FatalError $($R0)
  961.         Return $(FALSE)
  962.     Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  963.         Return $(FALSE)
  964.     Endif
  965.  
  966.     Set SrcDir = $($R1)
  967.  
  968.     install "Install-Option"
  969.  
  970.     ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  971.         Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  972.         Shell "" FatalError $($R0)
  973.         Return $(FALSE)
  974.     endif
  975.     Shell "" PrepareDetectionDll "ANDNCDET.DLL"
  976.     Return $(TRUE)
  977.  
  978. [SetSoftware]
  979.     read-syms RegistryConstants
  980.     read-syms GeneralConstants
  981.     read-syms FileConstants
  982.     read-syms date
  983.  
  984.  
  985.     Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  986.           $(ProductSoftwareName), +
  987.           $(ProductSoftwareName), +
  988.           $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  989.           $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  990.           $(NetEventDLL)
  991.  
  992.     Ifstr(i) $($R0) != NO_ERROR
  993.         Shell $(UtilityInf) RegistryErrorString $($R0)
  994.         Shell "" FatalError $($R0)
  995.         Return $(FALSE)
  996.     endif
  997.  
  998.         ;
  999.         ;   At this point:
  1000.         ;     $R1 contains the product version key handle;
  1001.         ;     $R2 contains the NetRules subkey handle;
  1002.         ;     $R3 contains the new Services key handle; and
  1003.         ;     $R4 contains the Parameters key
  1004.         ;     $R5 contains the Linkage Key
  1005.         ;
  1006.     set KeyProduct      = $($R1)
  1007.     Set SoftNetRulesKey = $($R2)
  1008.     CloseRegKey $($R3)
  1009.     CloseRegKey $($R4)
  1010.     CloseRegKey $($R5)
  1011.  
  1012.     Ifstr(i) $($R0) != NO_ERROR
  1013.         CloseRegKey $(KeyProduct)
  1014.         CloseRegKey $(SoftNetRulesKey)
  1015.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1016.         Shell "" FatalError $($R0)
  1017.         Return $(FALSE)
  1018.     endif
  1019.  
  1020.     set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  1021.                         {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  1022.                         {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  1023.                         {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  1024.                         {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  1025.                         {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  1026.                         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}}
  1027.  
  1028.     Shell  $(UtilityInf), AddValueList, $(KeyProduct), $(NewValueList)
  1029.  
  1030.     Ifstr(i) $($R0) != NO_ERROR
  1031.         CloseRegKey $(KeyProduct)
  1032.         CloseRegKey $(SoftNetRulesKey)
  1033.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1034.         Shell "" FatalError $($R0)
  1035.         Return $(FALSE)
  1036.     endif
  1037.  
  1038.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  1039.                         {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  1040.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  1041.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  1042.                         {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  1043.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),"ANDTOK"}}
  1044.  
  1045.     Shell  $(UtilityInf), AddValueList, $(SoftNetRulesKey), $(NewValueList)
  1046.  
  1047.     CloseRegKey $(KeyProduct)
  1048.     CloseRegKey $(SoftNetRulesKey)
  1049.  
  1050.     Ifstr(i) $($R0) != NO_ERROR
  1051.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1052.         Shell "" FatalError $($R0)
  1053.         Return $(FALSE)
  1054.     endif
  1055.     return $(TRUE)
  1056.  
  1057. [SetHardware]
  1058.     read-syms RegistryConstants
  1059.     read-syms GeneralConstants
  1060.     read-syms FileConstants
  1061.     read-syms date
  1062.  
  1063.  
  1064.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  1065.  
  1066.     Ifstr(i) $($R0) != NO_ERROR
  1067.         CloseRegKey $($R1)
  1068.         CloseRegKey $($R2)
  1069.         CloseRegKey $($R3)
  1070.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1071.         Shell "" FatalError $($R0)
  1072.         Return $(FALSE)
  1073.     endif
  1074.  
  1075. ;
  1076. ;   At this point:
  1077. ;     $R1  Registry key variable for HARDWARE\Netcard\(n)
  1078. ;     $R2  Registry key variable for HARDWARE\Netcard\(n)\\NetRules
  1079. ;     $R3  Registry key handle for <service>\Parameters key
  1080. ;     $R4  Adapter number assigned to adapter
  1081. ;     $R5  Service name generated by combining svc name with adapter number
  1082. ;
  1083.     set !KeyParameters   = $($R3)
  1084.     set KeyAdapterRules = $($R2)
  1085.     set AdapterNumber   = $($R4)
  1086.     set Option          = "ANDTOK"
  1087.  
  1088.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  1089.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardware$(Option)Title)},+
  1090.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardware$(Option)Description)},+
  1091.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  1092.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  1093.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),$($0)}}
  1094.  
  1095.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  1096.     Ifstr(i) $($R0) != NO_ERROR
  1097.         CloseRegKey $($R1)
  1098.         CloseRegKey $($R2)
  1099.         CloseRegKey $($R3)
  1100.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1101.         Shell "" FatalError $($R0)
  1102.         Return $(FALSE)
  1103.     endif
  1104.  
  1105.     CloseRegKey $($R1)
  1106.  
  1107.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  1108.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  1109.  
  1110.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  1111.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  1112.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  1113.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  1114.  
  1115.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  1116.  
  1117.     Ifstr(i) $($R0) != NO_ERROR
  1118.         CloseRegKey $(!KeyParameters)
  1119.         CloseRegKey $(KeyAdapterRules)
  1120.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1121.         Shell "" FatalError $($R0)
  1122.         Return $(FALSE)
  1123.     endif
  1124.  
  1125.     CloseRegKey $(KeyAdapterRules)
  1126.     return $(TRUE)
  1127.  
  1128. [WriteParameters]
  1129.     read-syms RegistryConstants
  1130.     read-syms FileConstants
  1131.     read-syms GeneralConstants
  1132.     read-syms DownLoadInfo
  1133.  
  1134.     set Base           = $(!p:NewBase)
  1135.     set Irq            = $(!p:NewIrq)
  1136.     set Speed          = $(!p:NewSpeed)
  1137.     set Dma            = $(!p:NewDma)
  1138.     set DmaMode        = $(!p:NewDmaMode)
  1139.     set Pio            = $(!p:NewPio)
  1140.     set MaxFrame       = $(!p:NewMaxFrame)
  1141.     set EarlyRelease   = $(!p:NewEarlyRelease)
  1142.     set SetAddress     = $(!p:SetAddress)
  1143.     set NetworkAddress = $(!p:NetworkAddress)
  1144.     set ClockSource    = $(!p:NewClockSource)
  1145.     set WaitStates     = $(!p:NewWaitStates)
  1146.     set LongBurst      = $(!p:NewLongBurst)
  1147.     set BusNumber      = $(!p:BusNumber)
  1148.  
  1149.     Shell $(UtilityInf), GetBusTypeNum
  1150.     set BusTypeNum = $($R1)
  1151.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  1152.         Shell "" FatalError "Cannot get bus number"
  1153.         Return $(FALSE)
  1154.     endif
  1155.  
  1156.     Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusTypeNum)},+
  1157.                        {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  1158.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),2},+
  1159.                        {Speed,$(NoTitle),$(!REG_VT_DWORD),$(Speed)},+
  1160.                        {DmaMode,$(NoTitle),$(!REG_VT_SZ),$(DmaMode)},+
  1161.                        {Interrupt,$(NoTitle),$(!REG_VT_DWORD),$(Irq)},+
  1162.                        {DmaChannel,$(NoTitle),$(!REG_VT_DWORD),$(Dma)},+
  1163.                        {EarlyRelease,$(NoTitle),$(!REG_VT_DWORD),$(EarlyRelease)},+
  1164.                        {MacCode,$(NoTitle),$(!REG_VT_SZ),$(DownFile)},+
  1165.                        {PacketSize,$(NoTitle),$(!REG_VT_DWORD),$(MaxFrame)},+
  1166.                        {ProductId,$(NoTitle),$(!REG_VT_SZ),"0110F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0"},+
  1167.                        {IoBase,$(NoTitle),$(!REG_VT_DWORD),$(Base)},+
  1168.                        {SetAddress,$(NoTitle),$(!REG_VT_DWORD),$(SetAddress)},+
  1169.                        {NetworkAddress,$(NoTitle),$(!REG_VT_SZ),$(NetworkAddress)},+
  1170.                        {PioBase,$(NoTitle),$(!REG_VT_DWORD),$(Pio)},+
  1171.                        {ClockSource,$(NoTitle),$(!REG_VT_DWORD),$(ClockSource)},+
  1172.                        {WaitStates,$(NoTitle),$(!REG_VT_DWORD),$(WaitStates)},+
  1173.                        {LongBurst,$(NoTitle),$(!REG_VT_DWORD),$(LongBurst)}}
  1174.  
  1175.  
  1176.     Shell  $(UtilityInf), AddValueList, $(!KeyParameters), $(NewValueList)
  1177.  
  1178.     CloseRegKey $(!KeyParameters)
  1179.  
  1180.     Ifstr(i) $($R0) != NO_ERROR
  1181.         Shell $(UtilityInf) RegistryErrorString $($R0)
  1182.         Shell "" FatalError $($R0)
  1183.         Return $(FALSE)
  1184.     endif
  1185.  
  1186.     Return $(TRUE)
  1187.  
  1188.  
  1189. [FatalError]
  1190.     read-syms FileConstants
  1191.  
  1192.     ifstr(i) $($0) == ""
  1193.         set Message = "Unknown Error"
  1194.     else
  1195.         set Message = $($0)
  1196.     endif
  1197.  
  1198.     Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) FATAL $(Message)
  1199.     Return
  1200.  
  1201. [WarnError]
  1202.     read-syms FileConstants
  1203.  
  1204.     ifstr(i) $($0) == ""
  1205.         set Message = "Unknown Error"
  1206.     else
  1207.         set Message = $($0)
  1208.     endif
  1209.  
  1210.     Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) NONFATAL $(Message)
  1211.     Return
  1212.  
  1213. [VerifyError]
  1214.     read-syms FileConstants
  1215.  
  1216.     ifstr(i) $($0) == ""
  1217.         set Message = "Unknown Error"
  1218.     else
  1219.         set Message = $($0)
  1220.     endif
  1221.  
  1222.     Shell $(SubroutnInf) SetupMessage $(!STF_LANGUAGE) WARNING $(Message)
  1223.     Return $($R1)
  1224.  
  1225. [Install-Option]
  1226.     set STF_VITAL = ""
  1227.     ifstr(i) $(AddCopy) == "YES"
  1228.         AddSectionFilesToCopyList Files-andncdet $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1229.         AddSectionFilesToCopyList Files-ANDTOK $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1230.         AddSectionFilesToCopyList Files-Dlg $(SrcDir) $(!STF_WINDOWSSYSPATH)
  1231.     endif
  1232.     ifstr(i) $(DoCopy) == "YES"
  1233.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1234.        CopyFilesInCopyList
  1235.     endif
  1236.     Exit
  1237.  
  1238. [Install-Update]
  1239.    set STF_VITAL        = ""
  1240.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  1241.    AddSectionFilesToCopyList Files-ANDTOK $(!SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  1242.    AddSectionFilesToCopyList Files-Inf $(!SrcDir) $(!STF_WINDOWSSYSPATH)
  1243.    AddSectionFilesToCopyList Files-Dlg $(!SrcDir) $(!STF_WINDOWSSYSPATH)
  1244.    set !STF_NCPA_FLUSH_COPYLIST = TRUE
  1245.    CopyFilesInCopyList
  1246.    exit
  1247.  
  1248. [PrepareDetectionDll]
  1249.     Set NewDllName = $($0)
  1250.     Set Status = STATUS_FAILED
  1251.     read-syms GeneralConstants
  1252.     Set DllValueName = "NetcardDlls"
  1253.     OpenRegKey $(!REG_H_LOCAL) "" "System\Setup" $(MAXIMUM_ALLOWED) KeySetup
  1254.     Ifstr(i) $(KeySetup) == $(KeyNull)
  1255.         Goto PDD_Return
  1256.     Endif
  1257.     Set DllFound = 0
  1258.     GetRegValue $(KeySetup) $(DllValueName) DllNamesValue
  1259.     Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  1260.         Goto PDD_Return
  1261.     Endif
  1262.  
  1263.     Set DllNames = *($(DllNamesValue),4)
  1264.     ForListDo $(DllNames)
  1265.         Ifstr(i) $($) == $(NewDllName)
  1266.             Set DllFound = 1
  1267.         Endif
  1268.     EndForListDo
  1269.     Ifint $(DllFound) == 0
  1270.         Set DllNames = >($(DllNames),$(NewDllName))
  1271.         Set ValueInfo = {$(DllValueName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(DllNames)}
  1272.         SetRegValue $(KeySetup) $(ValueInfo)
  1273.         Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
  1274.             Set Status = STATUS_SUCCESSFUL
  1275.         Endif
  1276.     Else
  1277.         Set Status = STATUS_USERCANCEL
  1278.     Endif
  1279.     CloseRegKey $(KeySetup)
  1280. PDD_Return = +
  1281.     Return $(Status)
  1282.